#include <random>
#include <iostream>
#include <iomanip>
#include <vector>

int main()
{
    std::vector<int> cardList = {
        0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,	//方块 A - K
        0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,	//梅花 A - K
        0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,	//红桃 A - K
        0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,	//黑桃 A - K
    };

    std::vector<int> tempList(52, 0);
    for (int i = 0; i < 20; ++i)
    {
        std::random_device rng;
        std::mt19937 urng(rng());
        std::copy(cardList.begin(), cardList.end(), tempList.begin());
        std::shuffle(tempList.begin(), tempList.end(), urng);
        std::cout << "Round" << i << std::endl;
        for (int j = 0; j < 4; ++j)
        {
            std::cout << "Player" << j + 1 << "\t";
            for (int z = 0; z < 13; ++z)
            {
                std::cout << std::hex << std::setw(2) << tempList[j * 13 + z] << " ";
            }
            std::cout << std::endl;
        }
    }

    return 0;
}